Day1 時,我們淺談了測試的重要性;測試在工程師們的眼中是何等存在?浪費時間?但似乎又很重要?
在我們實際看到測試到底是什麼東西前,先讓大家了解測試的類型有哪些。
專門針對每項功能與方法進行的測試,以最小單位( 一個方法、類別、屬性等)一一進行測試,確認設計邏輯正確,品質正常,程式沒有 bug,能正常 run 起來。簡單來說,以銀行的 atm 功能為例。
今天設計了一項查詢餘額的功能,目的是要讓 atm 能正確顯示存款餘額;
另一項功能則是設計提款功能,讓 atm 給予使用者所輸入之金額,並在螢幕上顯示提款後的餘額;
再另一項則是設計存款功能,讓 atm 正確判斷使用者給予的金額,並在螢幕上顯示存款金額與存款後的餘額。
單元測試就是分別對這幾項功能,個別進行測試,確認是否有 bug。
針對複數的功能、類別,進行整體性的測試,確認彼此的運作關係符合邏輯。
最好懂的例子就是,台北捷運除了車門以外,還有月台閘門,所以旅客要上下車時,車門與月台砸門都要開啟,但這樣還不夠,還必須要是差不多時間開啟。
如果月台閘門開啟後,車門才打開始準備開啟,你當下會不會感到一點點的奇怪:「(月台閘門開了但車門還沒開) 欸~怎麼回事? (車門開始開啟了) 哦! 打開了。」這樣明顯的時間差可能會讓人感到突兀。
再更極端一點就是,月台閘門打開後,車門才打開,接著月台閘門先關起來,車門才關起來,這樣功能之間各跑各的,不在合理的步調上讓整體流暢,似乎就是有問題。
這就是整合測試的重要,讓每個功能都能夠以符合邏輯的方式運作。
今天運用比較白話且生活的方式講解,希望讓新手們能夠以輕鬆簡單的方式理解這一切,剩下的系統測試與使用者接受度測試就留到下一篇,可以先慢慢思考一下這篇所說的內容,俗話說慢慢來才會快,學習一步一步一點一點的成長,吸收了再繼續。